package com.sqx.modules.goods.vo;

import com.baomidou.mybatisplus.annotation.TableField;
import com.sqx.modules.goods.entity.Goods;
import com.sqx.modules.goods.entity.GoodsAndSku;
import com.sqx.modules.goodsMessage.entity.GoodsMessage;
import com.sqx.modules.recovery.entity.GoodsSpecifications;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.List;

@Data
public class GoodsVo extends Goods implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 用户昵称
     */
    @ApiModelProperty("用户昵称")
    private String userName;
    /**
     * 用户头像
     */
    @ApiModelProperty("用户头像")
    private String avatar;
    /**
     * 标签名称
     */
    @ApiModelProperty("标签名称")
    private String label;
    /**
     * 分类名称
     */
    @ApiModelProperty("分类名称")
    private String typeName;

    @ApiModelProperty("分类id")
    private Long typeId;

    /**
     * 自己是否已喜欢
     */
    @ApiModelProperty("是否喜欢")
    private int isFollow;
    /**
     * 收藏数
     */
    @ApiModelProperty("收藏数")
    private int followCount;
    /**
     * 留言数
     */
    @ApiModelProperty("留言数")
    private int messageCount;

    /**
     * 想要数
     */
    @ApiModelProperty("想要数")
    private int needCount;

    /**
     * 自己是否收藏
     */
    @ApiModelProperty("自己是否收藏")
    private Integer isFollowMe;

    /**
     * 自己是否想要
     */
    @ApiModelProperty("自己是否想要")
    private Integer isNeedMe;

    /**
     * 精选推荐：0不推荐  1推荐
     */
    @ApiModelProperty("精选推荐：0不推荐  1推荐")
    private Integer isRecommend;

    /**
     * 新旧程度
     */
    @TableField(exist = false)
    @ApiModelProperty("新旧程度")
    private String degreeName;

    /**
     * 品牌名称
     */
    @TableField(exist = false)
    @ApiModelProperty("品牌名称")
    private String brandName;

    /**
     * 规格id
     */
    @TableField(exist = false)
    @ApiModelProperty("规格id")
    private Long id;

    /**
     * 属性对应的价格
     */
//    @TableField(exist = false)
//    private BigDecimal goodPrice;

    /**
     * 回收规格属性名称
     */
    @TableField(exist = false)
    @ApiModelProperty("回收规格属性名称")
    private String attributeName;

    /**
     * 回收规格属性值
     */
    @TableField(exist = false)
    @ApiModelProperty("回收规格属性值")
    private String attributeValue;

    /**
     * 分类标签id
     */
    @TableField(exist = false)
    @ApiModelProperty("分类标签id")
    private Long labelId;

//    @TableField(exist = false)
//    private List<GoodsAndSku> skuVoList;

    /**
     * 规格列表
     */
    @TableField(exist = false)
    @ApiModelProperty("规格列表")
    private List<GoodsSpecifications> specifications;

    /**
     * 商品描述
     */
    @ApiModelProperty("商品描述")
    private String goodTitle;

    /**
     * 是否是回收商品
     */
    @ApiModelProperty("是否是回收商品")
    private Integer goodStatus;

    /**
     * 城市
     */
    @ApiModelProperty("城市")
    private String city;

    /**
     * 一级分类id
     */
    @ApiModelProperty("一级分类id")
    private Long firstTypeId;

    /**
     * 一级分类名称
     */
    @ApiModelProperty("一级分类名称")
    private String firstTypeName;

    /**
     * 搜索类型 1.综合 2.时间 3价格 4.区域
     */
    @ApiModelProperty("搜索类型 1.综合 2.时间 3价格 4.区域")
    private Integer searchType;

    /**
     * subSearchType 1、最近活跃 2、离我最近 3、信用排序
     */
    @ApiModelProperty("subSearchType 1、最近活跃 2、离我最近 3、信用排序")
    private Integer subSearchType;

    /**
     * timeRange 1.近一周 2.近7天 3.近15天 4.近30天 5.本周 6.上周 7.本月 8.上月 9自定义时间
     */
    @ApiModelProperty("timeRange 1.近一周 2.近7天 3.近15天 4.近30天 5.本周 6.上周 7.本月 8.上月 9自定义时间")
    private Integer timeRange;

    /**
     * startDate 开始时间
     */
    @ApiModelProperty("startDate 开始时间")
    private String startDate;

    /**
     * endDate 结束时间
     */
    @ApiModelProperty("endDate 结束时间")
    private String endDate;

    /**
     * priceOrder 1.升序 2.降序
     */
    @ApiModelProperty("priceOrder 1.升序 2.降序")
    private Integer priceOrder;

    /**
     * 用户当前经度
     */
    @ApiModelProperty("用户当前经度")
    private Double longitude;

    /**
     * 用户当前纬度
     */
    @ApiModelProperty("用户当前纬度")
    private Double latitude;

    /**
     * 位置详情
     */
    @ApiModelProperty("位置详情")
    private String regionalDetails;


    /**
     * 距离
     */
    @ApiModelProperty("距离")
    private Double distance;

    /**
     * 加密链接
     */
    @ApiModelProperty("加密链接")
    private String encryptLink;

    /**
     * 邀请码
     */
    @ApiModelProperty("邀请码")
    private String invitationCode;

    /**
     * 商品的sku
     */
    @TableField(exist = false)
    @ApiModelProperty("商品的sku")
    private String formName;

    /**
     * 商品是否已回收：1已回收 2未回收
     */
    @ApiModelProperty("商品是否已回收：1已回收 2未回收")
    private Integer recycleStatus;

    /**
     * 是否库存商品：1是 2否
     */
    @ApiModelProperty("是否库存商品：1是 2否")
    private Integer stockStatus;


}
